bf5741487b6bc3f22af6143d6372cee535ee63dc,app/controllers/api/DashboardsApiController.java,DashboardsApiController,addWidget,#String#,356

Before Change


    @BodyParser.Of(BodyParser.FormUrlEncoded.class)
    public Result addWidget(String dashboardId) {
        try {
            final Map<String, String> params = flattenFormUrlEncoded(request().body().asFormUrlEncoded());

            String query = params.get("query");
            String rangeType = params.get("rangeType");
            String description = params.get("description");

            Dashboard dashboard = dashboardService.get(dashboardId);

            // Determine timerange type.
            TimeRange timerange;
            try {
                int relative = 0;
                if (params.get("relative") != null) {
                    relative = Integer.parseInt(params.get("relative"));
                }

                timerange = TimeRange.factory(rangeType, relative, params.get("from"), params.get("to"), params.get("keyword"));
            } catch (InvalidRangeParametersException e2) {
                return status(400, views.html.errors.error.render("Invalid range parameters provided.", e2, request()));
            } catch (IllegalArgumentException e1) {
                return status(400, views.html.errors.error.render("Invalid range type provided.", e1, request()));
            }

            String streamId;
            if (params.containsKey("streamId")) {
                streamId = params.get("streamId");
            } else {
                streamId = params.get("streamid");
            }

            final DashboardWidget widget;
            try {
                final DashboardWidget.Type widgetType = DashboardWidget.Type.valueOf(params.get("widgetType"));
                switch (widgetType) {
                    case SEARCH_RESULT_COUNT: {
                        final Boolean trend = Boolean.parseBoolean(params.get("trend"));

After Change


    @BodyParser.Of(BodyParser.Json.class)
    public Result addWidget(String dashboardId) {
        try {
            final AddWidgetRequest request = Json.fromJson(request().body().asJson(), AddWidgetRequest.class);

            String query = (String) request.config().get("query");
            String rangeType = (String) request.config().get("range_type");